"""
多态

多态常作用在继承关系上.

比如
- 函数(方法)形参声明接收父类对象
- 实际传入父类的子类对象进行工作
即:
- 以父类做定义声明
- 以子类做实际工作
- 用以获得同一行为, 不同状态

=====================================================
抽象类

- 抽象类：含有抽象方法的类称之为抽象类
- 抽象方法：方法体是空实现的（pass）称之为抽象方法
"""


# 抽象类
class Animal:
    # 抽象方法
    def speak(self):
        pass


class Dog(Animal):
    def speak(self):
        print("汪汪汪")


class Cat(Animal):
    def speak(self):
        print("喵喵喵")


def speak(animal: Animal):
    animal.speak()


dog = Dog()
cat = Cat()

speak(dog)
speak(cat)
